﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using System.IO;
using System.Data.SqlClient;


public partial class frmProductoAlta : System.Web.UI.Page
{
    //Variables globales------------

    int comp = 0;
    int mono = 0;
    String datos_titular = ""; //"Razon Social: Brunetti Livio Alberto\nDomicilio: Perez Arzeno 5511 Jorge Newbery - Córdoba\nRNE: 04004185";
    String datos_elaborador = "";// "Razon Social: Brunetti Livio Alberto\nDomicilio: Perez Arzeno 5511 Jorge Newbery - Córdoba\nRNE: 04004185";
    String datos_comercializador = "";// "Razón Social:\nDomicilio:\nRNE:";



    void precarga_datos()  //Si el producto ya existe, entonces rellena los campos con los valores anteriores.
    {
        SqlConnection conexion = new SqlConnection("Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=BD_SAFA_FINAL;Integrated Security=True;Pooling=False");
        SqlCommand comando = new SqlCommand("select * from T_Producto where idProducto ="+10, conexion);  //El cod de producto se pasa despued de hacer una busqueda

        conexion.Open();

        SqlDataReader lector = comando.ExecuteReader();

        while (lector.Read())
        {
            TextBox2.Text = lector["marca"].ToString();
            TextBox3.Text = lector["fantasia"].ToString();
            TextBox4.Text = lector["denominacion"].ToString();

        }
    } 


    protected void Page_Load(object sender, EventArgs e)
    {
        precarga_datos();
        //Estos datos deben venir desde empresa-----------------------------------

        Session["codEmpresa"] = 600;       

        //Consulta a tabla empresa para recuperar datos necesarios para la monografia (filtra por codigo de empresa)

        SqlConnection conexion=new SqlConnection("Data Source=USUARIO-PC\\SQLEXPRESS;Initial Catalog=BD_SAFA_FINAL;Integrated Security=True;Pooling=False");
        SqlCommand comando = new SqlCommand("select * from T_Empresa where cuit =" + Session["codEmpresa"], conexion);

        conexion.Open();

        SqlDataReader lector = comando.ExecuteReader();

        while (lector.Read())
        {
            datos_titular="Razon Social: "+lector["razonSocial"].ToString()+"\nDomicilio"+lector["calle"].ToString()+" "+lector["numeroCalle"].ToString()+"\nRNE: "+lector["cuit"].ToString(); //cambiar a rne

            datos_elaborador="Razon Social: "+lector["razonSocial"].ToString()+"\nDomicilio"+lector["calle"].ToString()+" "+lector["numeroCalle"].ToString()+"\nRNE: "+lector["cuit"].ToString(); //cambiar a rne

           datos_comercializador="Razon Social: "+lector["razonSocial"].ToString()+"\nDomicilio"+lector["calle"].ToString()+" "+lector["numeroCalle"].ToString()+"\nRNE: "+lector["cuit"].ToString(); //cambiar a rne

           Label2.Text = "para establecimiento "+lector["nombreComercial"].ToString();
        }

        conexion.Close();

        //------------------------------------------------------------------------


        if (IsPostBack == false)
        {
            if (Session["RNPA"] != null)
            {
                TextBox1.Text = Session["RNPA"].ToString();
               // TextBox1.Enabled = false;
            }
            else
            {
                //TextBox1.Enabled = true;
            }

            if (Session["Denominacion"] != null)
            {
                TextBox4.Text = Session["Denominacion"].ToString();
            }

            if (Session["Marca"] != null)
            {
                TextBox2.Text = Session["Marca"].ToString();
            }

            if (Session["Fantasia"] != null)
            {
                TextBox3.Text = Session["Fantasia"].ToString();
            }

        }

    }

    protected void Button1_Click(object sender, EventArgs e)    //Boton Carga de composicion
    {
        comp = 1;

        Session["RNPA"] = null;
        Session["Denominacion"] = null;
        Session["Marca"] = null;
        Session["Fantasia"] = null;

        Session["RNPA"] = TextBox1.Text;                
        Session["Denominacion"] = TextBox4.Text;
        Session["Marca"] = TextBox2.Text;
        Session["Fantasia"] = TextBox3.Text;


        Response.Redirect("frmCargaComposicion.aspx");
    }


    protected void Button4_Click(object sender, EventArgs e)      //Boton Cancelar Registro. Debe Borrar la tabla correspondiente a la composicion 
    {                                                             //quimica porque se va creando apenas agregamos algun ingrediente.
        Session["RNPA"] = null;
        Session["Denominacion"] = null;
        Session["Marca"] = null;
        Session["Fantasia"] = null;

        SqlDataSource2.DeleteParameters["idRNPA"].DefaultValue = TextBox1.Text;
        SqlDataSource2.Delete(); //---> Elimina el detalle de la composicion quimica. OK!


        Response.Redirect("MenuServicios.aspx");
    }

    protected void Button3_Click(object sender, EventArgs e)  //Boton Cargar monografia
    {
        mono = 1;

        //-----------------------------------------------
        //Para recordar los valores al ir a otra ventana
        //-----------------------------------------------

        Session["RNPA"] = null;               
        Session["Denominacion"] = null;
        Session["Marca"] = null;
        Session["Fantasia"] = null;

        Session["RNPA"] = TextBox1.Text;                //Se usa en detalle
        Session["Denominacion"] = TextBox4.Text;
        Session["Marca"] = TextBox2.Text;
        Session["Fantasia"] = TextBox3.Text;


        Response.Redirect("frmMonografia.aspx");
    }
    protected void Button5_Click(object sender, EventArgs e)   //Boton Registrar Producto-------------------------------------------------------------
    {

        if ((Session["codEmpresa"] != null) && (Session["monografia_ok"] == "1") && (Session["composicion_ok"] == "1"))
        {
            CheckBox1.Enabled = true;

            SqlDataSource3.UpdateParameters["idProducto"].DefaultValue = "10";

            SqlDataSource3.UpdateParameters["nroRNPA"].DefaultValue = TextBox1.Text;
            SqlDataSource3.UpdateParameters["nroRNE"].DefaultValue = Session["codEmpresa"].ToString();   //La debe pasar Mario
            SqlDataSource3.UpdateParameters["denominacion"].DefaultValue = TextBox4.Text;
            SqlDataSource3.UpdateParameters["marca"].DefaultValue = TextBox2.Text;
            SqlDataSource3.UpdateParameters["fantasia"].DefaultValue = TextBox3.Text;
            SqlDataSource3.UpdateParameters["codEnvase"].DefaultValue = (DropDownList1.SelectedIndex + 1).ToString();
            SqlDataSource3.UpdateParameters["infoCompl"].DefaultValue = Session["infoCompl"].ToString();
            SqlDataSource3.UpdateParameters["marcoLegal"].DefaultValue = Session["marcoLegal"].ToString();
            SqlDataSource3.UpdateParameters["tecnicaElab"].DefaultValue = Session["tecnicaElab"].ToString();
            SqlDataSource3.UpdateParameters["deterioro"].DefaultValue = Session["deterioro"].ToString();
            SqlDataSource3.UpdateParameters["ensayo"].DefaultValue = Session["ensayo"].ToString();
            SqlDataSource3.UpdateParameters["conserv"].DefaultValue = Session["conserv"].ToString();
            SqlDataSource3.UpdateParameters["aptitud"].DefaultValue = Session["aptitud"].ToString();
            SqlDataSource3.UpdateParameters["modo"].DefaultValue = Session["modo"].ToString();

            SqlDataSource3.Update();

            Label1.Text = "Producto Registrado Correctamente";


            limpiar_variables();
            
        }
        else
        {
            if (Session["monografia_ok"] != "1") //En caso de que se intente guardar sin cargar monografia
            {
                Label1.Text = "Cargue la monografia del producto y/o composicion quimica antes de registrarlo!";
            }
            else
            { 
                Label1.Text = "No se paso el parametro Codigo empresa"; 
            }
        }
    }

    protected void Button6_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmListadoProductosEstablecimiento.aspx");
    }

    void limpiar_variables()
    {
        //Inicializacion despues de guardar---------------------------

        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";
        Session["composicion_ok"] = "0";
        Session["monografia_ok"] = "0";

        Label1.Text = Session["codEmpresa"].ToString();
    }

    protected void Button7_Click(object sender, EventArgs e)  //Generacion de la monografia en PDF
    {
        {
            //--Generar Monografia en PDF-------------------------------------

            String denominacion = TextBox4.Text.ToString();
            String info_complementaria = Session["infoCompl"].ToString();
            String marco_legal = Session["marcoLegal"].ToString();
            String marca = TextBox2.Text.ToUpper();
            String nombre_fantasia = TextBox3.Text.ToUpper();
            String pais_origen = "Argentina";
         //   String datos_titular = "Razon Social: Brunetti Livio Alberto\nDomicilio: Perez Arzeno 5511 Jorge Newbery - Córdoba\nRNE: 04004185";
          //  String datos_elaborador = "Razon Social: Brunetti Livio Alberto\nDomicilio: Perez Arzeno 5511 Jorge Newbery - Córdoba\nRNE: 04004185";
          //  String datos_comercializador = "Razón Social:\nDomicilio:\nRNE:";
            String ingredientes_aditivos = "Agua, Azucar, leche en polvo entera, crema de leche pasteurizada, establilizantes";
            String tecnica_elaboracion = Session["tecnicaElab"].ToString();
            String parametros_deterioro = Session["deterioro"].ToString();
            String ensayos_estabilidad = Session["ensayo"].ToString();
            String codiciones_conservacion = Session["conserv"].ToString();
            String vida_media = Session["aptitud"].ToString();
            String modo_indicacion = Session["modo"].ToString();


            String declaracion = "<br>gdghsgd</br>fkdjfkj";


            Session["RNPA"] = null;
            Session["Denominacion"] = null;
            Session["Marca"] = null;
            Session["Fantasia"] = null;
            Session["infoCompl"] = null;
            Session["tecnicaElab"] = null;
            Session["deterioro"] = null;
            Session["ensayo"] = null;
            Session["conserv"] = null;
            Session["aptitud"] = null;
            Session["modo"] = null;
            Session["marcoLegal"] = null;

           // limpiar_variables();

            Paragraph titulo = new Paragraph("MONOGRAFIA DE PRODUCTO\n\n\n");
            titulo.Alignment = Element.ALIGN_CENTER;
            titulo.Font.SetStyle(Font.BOLD);
            titulo.Font = FontFactory.GetFont("Arial", 10);

            //----------------------------------------------------------------

            FileStream fs = new FileStream(Server.MapPath("~/") + "Monografia" + ".pdf", FileMode.Create, FileAccess.Write, FileShare.None);
            Rectangle rec3 = new Rectangle(PageSize.A4);
            Document doc = new Document(rec3, 36, 36, 30, 180);   //eL CUARTO ES EL MARGEN SUPERIOR
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);

            iTextSharp.text.Font fontTitle = FontFactory.GetFont("Arial", 18, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
            iTextSharp.text.Font fontHead = FontFactory.GetFont("Arial", 16, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
            iTextSharp.text.Font fontBody = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD, BaseColor.BLACK);

            Console.WriteLine("");


            Paragraph titulo2 = new Paragraph("MONOGRAFIA DE PRODUCTO\n\n\n");
            titulo2.Alignment = Element.ALIGN_CENTER;
            titulo2.Font.SetStyle(Font.BOLD);
            titulo2.Font = FontFactory.GetFont("Arial", 10);

            Paragraph a1 = new Paragraph("1)DENOMINACION\n\n");
            a1.Font.SetStyle(Font.BOLD);
            a1.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a2 = new Paragraph("\n2)INFORMACION NUTRICIONAL COMPLEMENTEARIA\n\n");
            a2.Font.SetStyle(Font.BOLD);
            a2.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a3 = new Paragraph("\n3)MARCO LEGAL\n\n");
            a3.Font.SetStyle(Font.BOLD);
            a3.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a4 = new Paragraph("\n4)MARCA\n\n");
            a4.Font.SetStyle(Font.BOLD);
            a4.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a5 = new Paragraph("\n5)NOMBRE DE FANTASIA\n\n");
            a5.Font.SetStyle(Font.BOLD);
            a5.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a6 = new Paragraph("\n6)PAIS DE ORIGEN\n\n");
            a6.Font.SetStyle(Font.BOLD);
            a6.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a7 = new Paragraph("\n7)DATOS DEL TITULAR\n\n");
            a7.Font.SetStyle(Font.BOLD);
            a7.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a8 = new Paragraph("\n8)DATOS DEL ELABORADOR\n\n");
            a8.Font.SetStyle(Font.BOLD);
            a8.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a9 = new Paragraph("\n9)DATOS DEL COMERCIALIZADOR O IMPORTADOR\n\n");
            a9.Font.SetStyle(Font.BOLD);
            a9.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a10 = new Paragraph("\n10)LISTADO DE INGREDIENTES Y ADITIVOS\n\n");
            a10.Font.SetStyle(Font.BOLD);
            a10.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a11 = new Paragraph("\n11)TECNICA DE ELABORACION\n\n");
            a11.Font.SetStyle(Font.BOLD);
            a11.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a12 = new Paragraph("\n12)COMPOSICIÓN QUIMICA PORCENTUAL DEL PRODUCTO TERMINADO\n\n");
            a12.Font.SetStyle(Font.BOLD);
            a12.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a13 = new Paragraph("\n13)DATOS DEL EMPAQUE\n\n");
            a13.Font.SetStyle(Font.BOLD);
            a13.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a14 = new Paragraph("\n14)PARAMETROS DE DETERIORO DEL PRODUCTO\n\n");
            a14.Font.SetStyle(Font.BOLD);
            a14.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a15 = new Paragraph("\n15)ENSAYOS DE ESTABLILIDAD EFECTUADOS\n\n");
            a15.Font.SetStyle(Font.BOLD);
            a15.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a16 = new Paragraph("\n16)CONDICIONES DE CONSERVACION\n\n");
            a16.Font.SetStyle(Font.BOLD);
            a16.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a17 = new Paragraph("\n17)VIDA MEDIA O LAPSO DE APTITUD\n\n");
            a17.Font.SetStyle(Font.BOLD);
            a17.Font = FontFactory.GetFont("Arial", 9);

            Paragraph a18 = new Paragraph("\n18)MODO DE INDICACION DEL Nº DE LOTE\n\n");
            a18.Font.SetStyle(Font.BOLD);
            a18.Font = FontFactory.GetFont("Arial", 9);



            //------Creacion de las tablas

            PdfPTable t1 = new PdfPTable(1);
            t1.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c1 = new PdfPCell(new Paragraph(denominacion, FontFactory.GetFont("Arial", 10)));
            t1.AddCell(c1);

            PdfPTable t2 = new PdfPTable(1);
            t2.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c2 = new PdfPCell(new Paragraph(info_complementaria, FontFactory.GetFont("Arial", 10)));
            t2.AddCell(c2);

            PdfPTable t3 = new PdfPTable(1);
            t3.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c3 = new PdfPCell(new Paragraph(marco_legal, FontFactory.GetFont("Arial", 10)));
            t3.AddCell(c3);

            PdfPTable t4 = new PdfPTable(1);
            t4.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c4 = new PdfPCell(new Paragraph(marca, FontFactory.GetFont("Arial", 10)));
            t4.AddCell(c4);

            PdfPTable t5 = new PdfPTable(1);
            t5.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c5 = new PdfPCell(new Paragraph(nombre_fantasia, FontFactory.GetFont("Arial", 10)));
            t5.AddCell(c5);

            PdfPTable t6 = new PdfPTable(1);
            t6.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c6 = new PdfPCell(new Paragraph(pais_origen, FontFactory.GetFont("Arial", 10)));
            t6.AddCell(c6);

            PdfPTable t7 = new PdfPTable(1);
            t7.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c7 = new PdfPCell(new Paragraph(datos_titular, FontFactory.GetFont("Arial", 10)));
            t7.AddCell(c7);

            PdfPTable t8 = new PdfPTable(1);
            t8.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c8 = new PdfPCell(new Paragraph(datos_elaborador, FontFactory.GetFont("Arial", 10)));
            t8.AddCell(c8);

            PdfPTable t9 = new PdfPTable(1);
            t9.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c9 = new PdfPCell(new Paragraph(datos_comercializador, FontFactory.GetFont("Arial", 10)));
            t9.AddCell(c9);

            PdfPTable t10 = new PdfPTable(1);
            t10.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c10 = new PdfPCell(new Paragraph(ingredientes_aditivos, FontFactory.GetFont("Arial", 10)));
            t10.AddCell(c10);

            PdfPTable t11 = new PdfPTable(1);
            t11.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c11 = new PdfPCell(new Paragraph(tecnica_elaboracion, FontFactory.GetFont("Arial", 10)));
            t11.AddCell(c11);

            PdfPTable t12 = new PdfPTable(1);
            t12.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c12 = new PdfPCell(new Paragraph("-----", FontFactory.GetFont("Arial", 10)));
            t12.AddCell(c12);

            PdfPTable t13 = new PdfPTable(1);
            t13.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c13 = new PdfPCell(new Paragraph("-----", FontFactory.GetFont("Arial", 10)));
            t13.AddCell(c13);

            PdfPTable t14 = new PdfPTable(1);
            t14.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c14 = new PdfPCell(new Paragraph(parametros_deterioro, FontFactory.GetFont("Arial", 10)));
            t14.AddCell(c14);

            PdfPTable t15 = new PdfPTable(1);
            t15.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c15 = new PdfPCell(new Paragraph(ensayos_estabilidad, FontFactory.GetFont("Arial", 10)));
            t15.AddCell(c15);

            PdfPTable t16 = new PdfPTable(1);
            t16.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c16 = new PdfPCell(new Paragraph(codiciones_conservacion, FontFactory.GetFont("Arial", 10)));
            t16.AddCell(c16);

            PdfPTable t17 = new PdfPTable(1);
            t17.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c17 = new PdfPCell(new Paragraph(vida_media, FontFactory.GetFont("Arial", 10)));
            t17.AddCell(c17);

            PdfPTable t18 = new PdfPTable(1);
            t18.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c18 = new PdfPCell(new Paragraph(modo_indicacion, FontFactory.GetFont("Arial", 10)));
            t18.AddCell(c18);

            PdfPTable t19 = new PdfPTable(1);
            t19.SetWidthPercentage(new float[] { 590 }, PageSize.A4);
            PdfPCell c19 = new PdfPCell(new Paragraph(declaracion, FontFactory.GetFont("Arial", 10)));
            t19.AddCell(c19);


            doc.Open();


            doc.Add(titulo2);
            doc.Add(a1);
            doc.Add(t1);
            doc.Add(a2);
            doc.Add(t2);
            doc.Add(a3);
            doc.Add(t3);
            doc.Add(a4);
            doc.Add(t4);
            doc.Add(a5);
            doc.Add(t5);
            doc.Add(a6);
            doc.Add(t6);
            doc.Add(a7);
            doc.Add(t7);
            doc.Add(a8);
            doc.Add(t8);
            doc.Add(a9);
            doc.Add(t9);
            doc.Add(a10);
            doc.Add(t10);
            doc.Add(a11);
            doc.Add(t11);
            doc.Add(a12);
            doc.Add(t12);
            doc.Add(a13);
            doc.Add(t13);
            doc.Add(a14);
            doc.Add(t14);
            doc.Add(a15);
            doc.Add(t15);
            doc.Add(a16);
            doc.Add(t16);
            doc.Add(a17);
            doc.Add(t17);
            doc.Add(a18);
            doc.Add(t18);
            doc.Add(new Paragraph("\n\n"));
            doc.Add(t19);

            doc.Close();

            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "attachment;filename=orden" + "XX" + ".pdf");
            Response.TransmitFile(Server.MapPath("~/") + "Monografia" + ".pdf");
        }
    }
}